<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * 公共服务层 主要用于编写业务逻辑
 * @author Internet
 *
 */
class MY_Service
{
    protected $error_msg="";//错误信息
    protected $error_code=0;//错误代码
    protected $error_info=array();//错误返回信息
    /**
     *  错误代码
     *  0:成功
     *  =========== 1 通用型错误信息 =================
     *  1001:操作失败
     *  1002:数据库错误
     *  1004:查找对象不存在
     *  =========== 5 开头代表用户信息相关错误 =========
     *  5001:邮箱已经存在
     *  5002:手机号码已经存在
     *
     *  5004:用户不存在
     *
     *  ============ 6 消息发送以及校验业务 =======================
     *
     *  6001:邮件发送失败
     *  6002:验证码过期
     *
     *  ============ 7 文件相关错误信息 =======================
     *
     *  7001:
     *
     */


    public function __construct()
    {
        $this->load->language('base');
    }

    function __get($key)
    {
        $CI = & get_instance();
        return $CI->$key;
    }

    /**
     * 获取错误信息
     * @param string $key
     * @return array
     */
    public function get_error($key=""){

        $error = array("code"=>$this->error_code,"msg"=>$this->error_msg,"info"=>$this->error_info);
        if(!empty($key) && isset($error[$key]))
        {
            return $error[$key];
        }
        return $error;
    }

    /**
     * 设置错误信息
     * @param int $code
     * @return bool
     */
    public function set_error($code=1001,$format_arg=array(),$info=array(),$msg=NULL){
        $this->error_code = $code;
        if(empty($msg))
        {
            $msg = $this->lang->line("error_".$code);
        }
        if(!empty($msg) && !empty($format_arg))
        {
            $args =array_merge(array($msg),$format_arg);
            $msg = call_user_func_array("sprintf",$args);
        }
        $this->error_msg = $msg;
        $this->error_info = $info;
        return false;
    }
}
 
